{
char tbuf[100];
char wptname[MPSNAMEBUFFERLEN];
- char* wptdesc = NULL;
- char* wptnotes = NULL;
int lat;
int lon;
int icon;
gbfseek(mps_file, 8, SEEK_CUR);
}
- wptdesc = gbfgetcstr(mps_file);
+ QScopedPointer<char, QScopedPointerPodDeleter>wptdesc (gbfgetcstr(mps_file));
if (gbfgetc(mps_file) == 1) { /* proximity validity */
mps_proximity = gbfgetdbl(mps_file);
if ((mps_ver == 4) || (mps_ver == 5)) {
gbfread(tbuf, 6, 1, mps_file); /* unknown */
- wptnotes = gbfgetcstr(mps_file);
+ QScopedPointer<char, QScopedPointerPodDeleter>wptnotes (gbfgetcstr(mps_file));
+ thisWaypoint->notes = *wptnotes;
} else {
gbfread(tbuf, 2, 1, mps_file); /* unknown */
}
- thisWaypoint->shortname = xstrdup(wptname);
- thisWaypoint->description = wptdesc;
- thisWaypoint->notes = wptnotes;
+ thisWaypoint->shortname = wptname;
+ thisWaypoint->description = *wptdesc;
thisWaypoint->latitude = GPS_Math_Semi_To_Deg(lat);
thisWaypoint->longitude = GPS_Math_Semi_To_Deg(lon);
thisWaypoint->altitude = mps_altitude;
mps_route_r(gbfile* mps_file, int mps_ver, route_head** rte)
{
char tbuf[100];
- char* rtename;
char wptname[MPSNAMEBUFFERLEN];
int lat = 0;
int lon = 0;
double mps_altitude = unknown_alt;
double mps_depth = unknown_alt;
- rtename = gbfgetcstr(mps_file);
+ QScopedPointer<char, QScopedPointerPodDeleter>rtename(gbfgetcstr(mps_file));
#ifdef MPS_DEBUG
fprintf(stderr, "mps_route_r: reading route %s\n", rtename);
#endif
#endif
rte_head = route_head_alloc();
- rte_head->rte_name = rtename;
+ rte_head->rte_name = *rtename;
route_add_head(rte_head);
*rte = rte_head;
static void
mps_track_r(gbfile* mps_file, int mps_ver, route_head** trk)
{
- char* trkname;
int lat;
int lon;
(void)mps_ver;
- trkname = gbfgetcstr(mps_file);
+ QScopedPointer<char, QScopedPointerPodDeleter>trkname (gbfgetcstr(mps_file));
#ifdef MPS_DEBUG
fprintf(stderr, "mps_track_r: reading track %s\n", trkname);
#endif
#endif
track_head = route_head_alloc();
- track_head->rte_name = trkname;
+ track_head->rte_name = *trkname;
track_add_head(track_head);
*trk = track_head;